import CryptoJS from "crypto-js";

/**加密解密key*/
export const EN_DC_KEY = "9216345272696329";
/**加密解密iv*/
export const EN_DC_IV = "0507060302080104";

// 加密方法
export function Encrypt(data: string, k = EN_DC_KEY, i = EN_DC_IV) {
  try {
    const key = CryptoJS.enc.Utf8.parse(k); // 十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse(i); // 十六位十六进制数作为密钥偏移量
    const srcs = CryptoJS.enc.Utf8.parse(data);
    const encrypted = CryptoJS.AES.encrypt(srcs, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.toString();
  } catch (error) {
    console.log(error);
  }
}

// 解密方法
export function Decrypt(data: string, k = EN_DC_KEY, i = EN_DC_IV) {
  try {
    const key = CryptoJS.enc.Utf8.parse(k); // 十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse(i); // 十六位十六进制数作为密钥偏移量
    const decrypt = CryptoJS.AES.decrypt(data, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    });
    const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
  } catch (error) {
    console.log(error);
  }
}
